
// 主函数
#include <iostream>
#include "../comm/httplib.h"
#include "compile_run.hpp"

using namespace httplib;

int main(int argc, char *argv[])
{
    if (argc != 2)
    {
        cout << "Incorrect use, correct use:" << "\n\t" << argv[0] << " port" << endl;
        return 1;
    }
    Server svr;

    svr.Post("/compile_and_run", [](const Request &req, Response &rep)
    {
        string in = req.body;
        string out;
        if(!in.empty())
        {        
            Complie_Run::Start(in, &out);
            rep.set_content(out, "application/json;charset=utf-8");
        } 
    });

    svr.listen("0.0.0.0", stoi(argv[1]));
    // // while (true)
    // // {
    // Json::Value in_json;
    // Json::FastWriter writer;
    // in_json["code"] = R"(#include <iostream>
    // int main()
    // {
    //     std::cout << "hello world" << std::endl;
    //     return 0;
    // })";
    // in_json["input"] = "";
    // in_json["cpu_limit"] = 1;
    // in_json["mem_limit"] = 50000;

    // // std::string code = in["code"].asString();
    // // std::string input = in["input"].asString();
    // // int cpu_limit = in["cpu_limit"].asInt();
    // // int mem_limit = in["mem_limit"].asInt();
    // std::string in = writer.write(in_json);
    // cout << in << endl;
    // std::string out;
    // Complie_Run::Start(in, &out);

    // cout << out << endl;
    // // sleep(10);
    // // execlp("rm", "rm", (path + "*").c_str(), "-f", nullptr);
    // // }
    return 0;
}